package moodle.Agentes.actions.Pedagogico;

import java.math.BigInteger;

import dao.GerenciaCurso;
import moodle.Org.MoodleEnv;
import moodle.dados.Aluno;
import moodle.dados.Curso;
import moodle.dados.mensagem.Mensagem;
import jamder.Environment;
import jamder.behavioural.Action;
import jamder.behavioural.Condition;



public class InformarPreRequisitos extends Action {
	
	private boolean done = false;
	private boolean mantemAtivo;
	
	public InformarPreRequisitos(String name){
		super(name);
	}
	
	public InformarPreRequisitos(String name, Condition pre_condition,
			Condition pos_condition) {
		super(name, pre_condition, pos_condition);
		
	}
	
	@Override
	public void execute(Environment env, Object[] params) {
		
		block(15*1000L);
		
		mantemAtivo = ((MoodleEnv)env).getMantemAgentesAtivos();
		
		if(!mantemAtivo)
			return;
		
		GerenciaCurso manager = ((MoodleEnv)env).getGerenciaCurso();
		
		BigInteger useridfrom = new BigInteger("2");
		
		for(Curso curso : manager.getCursos()){
			
			if(curso.getCursosPreRequisito().isEmpty())
				continue;
			
			
			
			StringBuilder smallmessage = new StringBuilder();
			smallmessage.append("Prezado Aluno, \n\n");
			smallmessage.append("Revise os principais conceitos da(s) disciplina(s) ");
			
			for(Curso preReq : curso.getCursosPreRequisito()){
				smallmessage.append(preReq.getFullName() + " ");
			}
			
			smallmessage.append(" para que seu aprendizado em " + curso.getFullName() +  " seja maximizado");
			
			
			
			for(Aluno al : curso.getAlunos()){
				
				BigInteger useridto = al.getId();
				
				StringBuilder fullmessage = new StringBuilder(smallmessage);
				fullmessage.append("\n--------------------------------------------------------------------- \nEste e-mail é a cópia de uma mensagem que foi enviada para você em \"GESMA\". Clique http://127.0.1.1/moodle/message/index.php?user=" + useridto + "&id= " + useridfrom +" para responder.");
				
				Long time = System.currentTimeMillis();
				
				Mensagem msg = new Mensagem();
				msg.setSubject("Nova mensagem do Administrador");
				msg.setUseridfrom(useridfrom);
				msg.setUseridto(useridto);
				msg.setSmallmessage(smallmessage.toString());
				msg.setFullmessage(fullmessage.toString());
				msg.setTimecreated(time);
				
				((MoodleEnv)env).addMensagem(msg);

				
			}
			
			
		}
		
				
	}
	
	@Override
	public boolean done() {
		return done;
	}


}
